<?php

session_start();

require_once ('../datos/AccesoDatos.php');
require_once ('../genericos/translate.php');
include_once ('sqlinjection.php');

$accion = $_GET['accion'];
$objCita = new Cita();

switch ($accion) {
    case "calcularFinal": $objCita->calcularFinalCita();
        break;
    case "calcularFinalCandidato": $objCita->calcularFinalCitaCandidato();
        break;
    case "agregartiempo": $objCita->agregarTiempoCita();
        break;
    case "restartiempo": $objCita->restarTiempoCita();
        break;
    case "guardar": $objCita->guardarCita();
        break;
    case "guardarautomaticamente": $objCita->guardarCitasAutomaticamente();
        break;
    case "guardarprocedimientos": $objCita->guardarProcedimientosCita();
        break;
    case "guardarprocedimientospendientes": $objCita->guardarProcedimientosPendientes();
        break;
    case "buscar": $objCita->traerCitaPorId();
        break;
    case "eliminar": $objCita->eliminarCita();
        break;
    case "factura": $objCita->factura();
        break;
    case "procedimientofactura": $objCita->procedimientofactura();
        break;
    case "cargarprocedimientosxcita": $objCita->procedimientofactura();
        break;
    case "cargarprocedimientospendientesxcita": $objCita->traerprocedimientoPendientes();
        break;
    case "guardarfactura": $objCita->guardarfactura();
        break;
    case "paquetespendientes": $objCita->comprobarPaquetesPendientes();
        break;
    case "procedimientospendientes": $objCita->comprobarProcedimientosPendientes();
        break;
    case "procedimientospendientes2": $objCita->comprobarProcedimientosPendientes2();
        break;
    case "traerprocedimientosxpaquete": $objCita->traerProcedimientosxPaquete();
        break;
    case "guardarpaquetes": $objCita->guardarPaquetes();
        break;
    case "cargarpaquetesxcita": $objCita->traerPaquetesxCita();
        break;
    case "productoscita": $objCita->productosCita();
        break;
    case "paquetescita": $objCita->paqueteCitas();
        break;
    case "procedimientospaquetescita": $objCita->procedimientosPaqueteCitas();
        break;
    case "comprobarfactura": $objCita->comprobarFactura();
        break;
    case "refrescarrecordatorios": $objCita->refrescarRecordatorios();
        break;
    case "cambiarestadocita": $objCita->cambiarEstadoCita();
        break;
};

class Cita {

    private $ID_CITA;
    private $ID_PERSONA;
    private $ID_EMPRESAS;
    private $ID_CEMTROMEDICO;
    private $ID_EMPLEADO;
    private $FC_INICIO;
    private $FC_FINAL;
    private $OP_CITA;
    private $ID_USRINSERT;
    private $FH_INSERT;
    private $ID_USRMOD;
    private $FH_MOD;
    private $INTERVALO;
    private $ARREGLO_CITAS = array();
    private $OBJETO_CITAS = array();
    private $TIPO_VISTA;
    private $modoAutomatico = false;

    public function getINTERVALO() {
        return $this->INTERVALO;
    }

    public function setINTERVALO($INTERVALO) {
        $this->INTERVALO = $INTERVALO;
    }

    public function getID_CITA() {
        return $this->ID_CITA;
    }

    public function setID_CITA($ID_CITA) {
        $this->ID_CITA = $ID_CITA;
    }

    public function getID_EMPRESAS() {
        return $this->ID_EMPRESAS;
    }

    public function setID_EMPRESAS($ID_EMPRESAS) {
        $this->ID_EMPRESAS = $ID_EMPRESAS;
    }

    public function getID_PERSONA() {
        return $this->ID_PERSONA;
    }

    public function setID_PERSONA($ID_PERSONA) {
        $this->ID_PERSONA = $ID_PERSONA;
    }

    public function getID_CEMTROMEDICO() {
        return $this->ID_CEMTROMEDICO;
    }

    public function setID_CEMTROMEDICO($ID_CEMTROMEDICO) {
        $this->ID_CEMTROMEDICO = $ID_CEMTROMEDICO;
    }

    public function getID_EMPLEADO() {
        return $this->ID_EMPLEADO;
    }

    public function setID_EMPLEADO($ID_EMPLEADO) {
        $this->ID_EMPLEADO = $ID_EMPLEADO;
    }

    public function getFC_INICIO() {
        return $this->FC_INICIO;
    }

    public function setFC_INICIO($FC_INICIO) {
        $this->FC_INICIO = $FC_INICIO;
    }

    public function getFC_FINAL() {
        return $this->FC_FINAL;
    }

    public function setFC_FINAL($FC_FINAL) {
        $this->FC_FINAL = $FC_FINAL;
    }

    public function getOP_CITA() {
        return $this->OP_CITA;
    }

    public function setOP_CITA($OP_CITA) {
        $this->OP_CITA = $OP_CITA;
    }

    public function getID_USRINSERT() {
        return $this->ID_USRINSERT;
    }

    public function setID_USRINSERT($ID_USRINSERT) {
        $this->ID_USRINSERT = $ID_USRINSERT;
    }

    public function getFH_INSERT() {
        return $this->FH_INSERT;
    }

    public function setFH_INSERT($FH_INSERT) {
        $this->FH_INSERT = $FH_INSERT;
    }

    public function getID_USRMOD() {
        return $this->ID_USRMOD;
    }

    public function setID_USRMOD($ID_USRMOD) {
        $this->ID_USRMOD = $ID_USRMOD;
    }

    public function getFH_MOD() {
        return $this->FH_MOD;
    }

    public function setFH_MOD($FH_MOD) {
        $this->FH_MOD = $FH_MOD;
    }

    public function getARREGLO_CITAS() {
        return $this->ARREGLO_CITAS;
    }

    public function setARREGLO_CITAS($ARREGLO_CITAS) {
        $this->ARREGLO_CITAS = $ARREGLO_CITAS;
    }

    public function getOBJETO_CITAS() {
        return $this->OBJETO_CITAS;
    }

    public function setOBJETO_CITAS($OBJETO_CITAS) {
        $this->OBJETO_CITAS = $OBJETO_CITAS;
    }

    public function getTIPO_VISTA() {
        return $this->TIPO_VISTA;
    }

    public function setTIPO_VISTA($TIPO_VISTA) {
        $this->TIPO_VISTA = $TIPO_VISTA;
    }

    function disponibilidadCita() {
        try {
            $sql = "pa_comprobarDisponibilidadCita('" . $this->FC_FINAL . "','" . $this->ID_CEMTROMEDICO;
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                while ($row = $objDatos->devuelveArreglo()) {
                    $cita = $row['ID_CITAS'];
                }
            }
            return $cita;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    /*
     * 
     */

    function TraerCitasMedico() {
        try {
            $sql = "pa_TraerCitas('" . $this->ID_EMPLEADO . "','" . $this->FC_INICIO . "','" . $this->FC_FINAL . "','" . $this->ID_CEMTROMEDICO;
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                while ($row = $objDatos->devuelveArreglo()) {
                    $objeto = array('Id' => $row['_id_cita'], 'Inicio' => $row['_inicio'], 'Final' => $row['_final'], 'Nombre' => $row['_nombre'], 'Procedimiento' => $row['_procedimiento']);
                    $this->ARREGLO_CITAS[] = $objeto;
                }
            }
            return $this->ARREGLO_CITAS;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    /**
     * Busca los intervalos de tiempo de una cita por su numero de cita.
     */
    function traerTiempoCita() {
        $sql = "pa_buscarCita('" . $this->getID_CITA();
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $this->setFC_INICIO($row['FC_INICIO']);
                $this->setFC_FINAL($row['FC_FINAL']);
            }
        }
    }

    /**
     * Devuelve los datos de una cita segun su numero de cita.
     */
    function traerCitaPorId() {
        try {
            $sql = "pa_buscarCita('" . $_GET['IdCita'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                while ($row = $objDatos->devuelveArreglo()) {
                    $my_array = array('IdPaciente' => $row['DS_IDENTIFICACION'], 'Nombre' => $row['DS_NOMBRE'], 'Apellido1' => $row['DS_APELLIDO1'], 'Apellido2' => $row['DS_APELLIDO2'], 'Inicio' => $row['FC_INICIO'], 'Final' => $row['FC_FINAL'], 'Estado' => $row['OP_CITA']);
                }
            }

            echo json_encode($my_array);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function traerCitasMedicoMes() {
        try {
            $sql = "pa_traerCitasMes('" . $this->FC_INICIO . "','" . $this->ID_EMPLEADO . "','" . $this->ID_CEMTROMEDICO;
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                while ($row = $objDatos->devuelveArreglo()) {
                    $objeto = array('Fecha' => $row['fechaCita'], 'Tiempo' => $row['tiempoCitas'], 'Cantidad' => $row['cantidadCitas']);
                    $this->ARREGLO_CITAS[] = $objeto;
                }
                $ddd = $objDatos->devuelveRegsLeidos();
            }
            return $this->ARREGLO_CITAS;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function calcularFinalCita() {
        $finalCita;
        $sql = "pa_devolverIntervaloCita('" . $_GET['PersonaJuridica'] . "','" . $_GET['IdEmpleado'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
            $my_array = array('error' => $error);
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $intervalo = $row['DS_INTERVALOCONSULTA'];
            }
        }
        $intervalo = split(":", $intervalo);
        $final = trim(substr($this->sumarTiempo($_GET['HoraInicio'], 0, 0, 0, $intervalo[0], $intervalo[1], 0), 11, 18));
        echo trim($final);
    }

    function calcularFinalCitaCandidato() {
        $separar[1] = explode(':', $_GET['finalCita']);
        $separar[2] = explode(':', $_GET['inicioCita']);
        $inicioCandidato = $_GET['inicioCandidato'];
        $finalCantidato = "";
        $total_minutos_trasncurridos[1] = ($separar[1][0] * 60) + $separar[1][1];
        $total_minutos_trasncurridos[2] = ($separar[2][0] * 60) + $separar[2][1];
        $total_minutos_trasncurridos = $total_minutos_trasncurridos[1] - $total_minutos_trasncurridos[2];
        if ($total_minutos_trasncurridos <= 59) {
            $finalCantidato = $this->sumarTiempo($_GET['inicioCita'], $dd, $mm, $yy, $hh, $total_minutos_trasncurridos, 0);
            $finalCantidato = substr($finalCantidato, 11, 8);
            echo $finalCantidato;
        } elseif ($total_minutos_trasncurridos > 59) {
            $HORA_TRANSCURRIDA = $total_minutos_trasncurridos / 60;
            if ($HORA_TRANSCURRIDA <= 9) {
                $HORA_TRANSCURRIDA = '0' . $HORA_TRANSCURRIDA;
                $MINUITOS_TRANSCURRIDOS = $total_minutos_trasncurridos % 60;
                $finalCantidato = $this->sumarTiempo($inicioCandidato, $dd, $mm, $yy, $HORA_TRANSCURRIDA, $MINUITOS_TRANSCURRIDOS, 0);
                $finalCantidato = substr($finalCantidato, 11, 8);
                echo $finalCantidato;
            } if ($MINUITOS_TRANSCURRIDOS <= 9) {
                $MINUITOS_TRANSCURRIDOS = '0' . $MINUITOS_TRANSCURRIDOS;
                $finalCantidato = $this->sumarTiempo($_GET['inicioCita'], $dd, $mm, $yy, $HORA_TRANSCURRIDA, $MINUITOS_TRANSCURRIDOS, 0);
                $finalCantidato = substr($finalCantidato, 11, 8);
                echo $finalCantidato;
            }
        }
    }

    function agregarTiempoCita() {
        $idProcedimiento = $_GET['idProcedimiento'];
        $sql = "SELECT VL_TIEMPO FROM adm_procedimientos a where ID_PROCEDIMIENTO = " . $_GET['idProcedimiento'] . " and ID_PERSONAJURIDICA = '" . $_GET['PersonaJuridica'] . "'";
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
            $my_array = array('error' => $error);
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $horas = substr($row['VL_TIEMPO'], 0, 2);
                $minutos = substr($row['VL_TIEMPO'], 3, 2);
            }
        }
        $final = trim(substr($this->sumarTiempo($_GET['HoraInicio'], 0, 0, 0, $horas, $minutos, 0), 11, 18));
        echo trim($final);
    }

    function restarTiempoCita() {
        $idProcedimiento = $_GET['idProcedimiento'];
        $sql = "SELECT VL_TIEMPO FROM adm_procedimientos a where ID_PROCEDIMIENTO = " . $_GET['idProcedimiento'] . " and ID_PERSONAJURIDICA = '" . $_GET['PersonaJuridica'] . "'";
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
            $my_array = array('error' => $error);
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $horas = substr($row['VL_TIEMPO'], 0, 2);
                $minutos = substr($row['VL_TIEMPO'], 3, 2);
            }
        }
        $final = trim(substr($this->restarTiempo($_GET['HoraInicio'], 0, 0, 0, $horas, $minutos, 0), 11, 18));
        echo trim($final);
    }

    function sumarTiempo($date, $dd, $mm, $yy, $hh, $mn, $ss) {
        $date_r = getdate(strtotime($date));
        $date_result = date('m/d/Y H:i:s', mktime(($date_r['hours'] + $hh), ($date_r['minutes'] + $mn), ($date_r['seconds'] + $ss), ($date_r['mon'] + $mm), ($date_r['mday'] + $dd), ($date_r['year'] + $yy)));
        return $date_result;
    }

    function restarTiempo($date, $dd, $mm, $yy, $hh, $mn, $ss) {
        $date_r = getdate(strtotime($date));
        $date_result = date('m/d/Y H:i:s', mktime(($date_r['hours'] - $hh), ($date_r['minutes'] - $mn), ($date_r['seconds'] - $ss), ($date_r['mon'] - $mm), ($date_r['mday'] - $dd), ($date_r['year'] - $yy)));
        return $date_result;
    }

    function guardarCita() {
        try {
            $sql = "pa_guardarCita('" . $_GET['IdCita'] . "','" . $_GET['IdPersonaJuridica'] . "','" . $_GET['IdEmpleado'] . "','" . $_GET['IdPaciente'] . "','" . $_GET['inicioCita'] . "','" . $_GET['finalCita'] . "',". $_GET['estado'] .",'" . $_SESSION['IdUsuario'] . "','','1";
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                $mensaje = _("mensajeGuardaCita");
                while ($row = $objDatos->devuelveArreglo()) {
                    $my_array = array('id' => $row['Id_Cita'], 'mensaje' => $mensaje);
                }
                echo json_encode($my_array);
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function guardarProcedimientosCita() {
        try {
            $sql = "pa_guardarProcedimientosCita('" . $_GET['IdCita'] . "','" . $_GET['procedimientos'] . "','" . $_GET['PersonaJuridica'] . "','" . $_SESSION['IdUsuario'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function guardarProcedimientosPendientes() {
        try {
            $sql = "pa_guardarProcedimientosPendientes('" . $_GET['IdCita'] . "','" . $_GET['procedimientos'] . "','" . $_GET['idCitapaquete'] . "','" . $_GET['idPaquete'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function eliminarCita() {
        try {
            $sql = "pa_eliminarCita('" . $_GET['IdCita'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                echo _("mensajeEliminaCita");
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function eliminarProcedimientosCita() {
        try {
            $sql = "pa_eliminarProcedimientoCita('" . $_GET['IdCita'] . "','" . $_GET['IdProdimientos'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function devuelveIntervalo() {
        $intervalo;
        $sql = "select DS_INTERVALOCONSULTA from prs_centrosmedicos where ID_EMPLEADO = " . $this->getID_EMPLEADO();
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $this->setINTERVALO($row['DS_INTERVALOCONSULTA']);
            }
        }
    }

    public function factura() {

        $idcita = $_GET['cita'];
        $sql = "pa_traerDatosCita('" . $idcita;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();

        $error = $objDatos->devuelveError();

        if ($error != "") {
            $my_array = array('error' => $error);
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $my_array = array(
                    'empleado' => $row['Empleado'],
                    'paciente' => $row['Paciente'],
                    'centro' => $row['Centro'],
                    'fc_inicio' => $row['FC_INICIO'],
                    'consulta' => $row['VL_CONSULTA'],
                    'idpaquete' => $row['ID_PAQUETE'],
                    'idcitapaquete' => $row['ID_CITAPAQUETE']
                );
            }
        }

        echo json_encode($my_array);
    }

    public function procedimientofactura() {

        $idcita = $_GET['cita'];
        $sql = "pa_traerProcedimientosxCita('" . $idcita;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        if ($error != "") {
            $my_array = array('error' => $error);
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $procedimiento = array(
                    'id' => $row['ID'],
                    'ds' => $row['Procedimiento'],
                    'precio' => $row['Precio'],
                    'lgcobro' => $row['LG_COBRO'],
                    'desc' => $row['VL_DESCUENTO']
                );

                $my_array[] = $procedimiento;
            }
        }

        echo json_encode($my_array);
    }

    public function traerprocedimientoPendientes() {

        $idcita = $_GET['cita'];
        $sql = "pa_traerProcedimientosPendientesxCita('" . $idcita;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        if ($error != "") {
            $my_array = array('error' => $error);
        } else {
            while ($row = $objDatos->devuelveArreglo()) {

                $procedimiento = array(
                    'id' => $row['Id'],
                    'ds' => $row['Descripcion'],
                    'estado' => $row['Estado']
                );

                $my_array[] = $procedimiento;
            }
        }

        echo json_encode($my_array);
    }

    function guardarfactura() {
        $id_cita = $_GET['idcita'];
        $total = $_GET['total'];
        $desc = $_GET['desc'];
        $procedimientos = $_GET['procedimientos'];
        $productos = $_GET['productos'];
        $desc_consulta = $_GET['desc_consulta'];
        $cobro = $_GET['cobro'];
        $sql = "pa_GuardarFactura('" . $id_cita . "','" .
                $total . "','" .
                $desc . "','" .
                $procedimientos . "','" .
                $productos . "','" .
                $desc_consulta . "','" .
                $cobro;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();

        echo $error;
    }

    function comprobarProcedimientosPendientes() {
        $sql = "pa_comprobarSesionesPendientes('" . $_GET['idPersona'] . "','" . $_GET['idcentroMedico'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        $pendientes;
        (int) $contador = 0;
        if ($error != "") {
            echo $error;
        } else {
            $paquete = "";
            while ($row = $objDatos->devuelveArreglo()) {
                if ((int) $row['pendientes'] != 0) {
                    if ((int) $contador == 0) {
                        $paquete = $row['paquete'];
                        $idCitaPaquete = $row['id_citapaquete'];
                        $idPaquete = $row['id_paquete'];
                    }
                    $contador++;
                }
                $pendientes = $row[0];
            }
        }
        if ($contador == 0) {
            //echo $contador;
            $my_array = array('IdCitaPaquete' => "0", 'Respuesta' => "Nada");
            echo json_encode($my_array);
        } else {
            $texto = $mensaje . "" . $respuesta;
            $my_array = array('IdCitaPaquete' => $idCitaPaquete, 'idPaquete' => $idPaquete, 'Respuesta' => $texto);
            echo json_encode($my_array);
        }
    }

    function comprobarProcedimientosPendientes2() {
        $sql = "pa_comprobarSesionesPendientes('" . $_GET['idPersona'] . "','" . $_GET['idcentroMedico'] . "','" . $_GET['idCitaPaquete'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $procedimiento = array(
                    'id_procedimiento' => $row['id'],
                    'ds' => $row['descripcion'],
                    'pendientes' => $row['pendientes'],
                    'paquete' => $row['paquete'],
                    'veces' => $row['veces']
                );
                $my_array[] = $procedimiento;
            }
        }
        echo json_encode($my_array);
    }

    function comprobarPaquetesPendientes() {
        $sql = "pa_comprobarPaquetesPendientes('" . $_GET['idPersona'] . "','" . $_GET['idcentroMedico'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        (int) $contador = 0;
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $procedimiento = array(
                    'idCitaPaquete' => $row['IdCitaPaquete'],
                    'IdPaquete' => $row['IdPaquete'],
                    'Descripcion' => $row['Descripcion']
                );
                $my_array[] = $procedimiento;
                $contador++;
            }
        }
        if ($contador == 0) {
            $procedimiento = array('idCitaPaquete' => '0', 'IdPaquete' => '0', 'Descripcion' => '');
            $my_array[] = $procedimiento;
            echo json_encode($my_array);
        } else {
            echo json_encode($my_array);
        }
    }

    /**
     * Trae todos los procedimientos relacionados con un paquete.
     */
    function traerProcedimientosxPaquete() {
        $sql = "pa_traerProcedimientosxPaquete('" . $_GET['idPaquete'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);

        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {

                $procedimiento = array(
                    'id' => $row['Id'],
                    'ds' => $row['Descripcion']
                );

                $my_array[] = $procedimiento;
            }
        }

        echo json_encode($my_array);
    }

    function guardarPaquetes() {
        try {
            $sql = "pa_guardarPaqueteCita('" . $_GET['IdCita'] . "','" . $_GET['paquetes'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarConsulta($sql);
            $error = $objDatos->devuelveError();
            if ($error != "") {
                echo $error;
            } else {
                while ($row = $objDatos->devuelveArreglo()) {
                    echo $row['Id_CitaPaquete'];
                }
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    function traerPaquetesxCita() {
        $sql = "SELECT cp.ID_CITAPAQUETE, cp.ID_PAQUETE from cts_paquete cp where cp.ID_CITAS = '" . $_GET['cita'] . "'";
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        (int) $i = 0;
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $my_array = array('idCitaPaquete' => $row['ID_CITAPAQUETE'], 'idPaquete' => $row['ID_PAQUETE']);
                $i++;
            }
            if ($i == 0) {
                $my_array = array('idCitaPaquete' => "0", 'idPaquete' => "0");
            }
        }
        echo json_encode($my_array);
    }

    function guardarCitasAutomaticamente() {
        try {
            $sql = "pa_guardarCitaAutomaticamente('" . $_GET['IdPersonaJuridica'] . "','" . $_GET['IdEmpleado'] . "','" . $_GET['IdPaciente'] . "','" . $_GET['inicioCita'] . "','" . $_GET['finalCita'] . "','" . $_SESSION['IdUsuario'] . "','" . $_GET['idPaquete'];
            $objDatos = new AccesoDatos();
            $objDatos->ejecutarTransaccion($sql);
            $error = $objDatos->devuelveError();
            $respuesta;
            if ($error != "") {
                echo $error;
            } else {
                while ($row = $objDatos->devuelveArreglo()) {
                    $respuesta = $row['idCitaPaquete'];
                }
                echo $respuesta;
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function productosCita() {

        $idcita = $_GET['cita'];
        $oper = $_GET['oper'];
        $sql = "pa_traerProductosxCita('" . $idcita . "','" . $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();

        $error = $objDatos->devuelveError();

        if ($error != "") {
            $my_array = array('error' => $error);
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $productos = array(
                    'id' => $row['ID_MEDICAMENTOS'],
                    'ds' => $row['DS_MEDICAMENTOS'],
                    'precio' => $row['VL_PRECIO'],
                    'cantidad' => $row['VL_CANTIDAD'],
                    'desc' => $row['VL_DESCUENTO'],
                    'medida' => $row['ds_medida'],
                    'presentacion' => $row['ds_presentacion']
                );
                $my_array[] = $productos;
            }
        }

        echo json_encode($my_array);
    }

    public function paqueteCitas() {


        $idcitapaquete = $_GET['idcitapaquete'];
        $sql = "pa_traerPaquetesxCita('" . $idcitapaquete;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();

        $error = $objDatos->devuelveError();

        if ($error != "") {
            $my_array = array('error' => $error);
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $paquete = array(
                    'dspaquete' => $row['DS_PAQUETE'],
                    'preciopaquete' => $row['VL_PAQUETE'],
                    'precio' => $row['VL_PRECIO'],
                    'descuento' => $row['VL_DESCUENTO'],
                    'descpaquete' => $row['VL_DESCPAQUETE'],
                    'abono' => $row['abono'],
                    'primeracuota' => $row['VL_PRIMERACUOTA']
                );

                $my_array[] = $paquete;
            }
        }

        echo json_encode($my_array);
    }

    public function procedimientosPaqueteCitas() {


        $idcitapaquete = $_GET['idcitapaquete'];
        $idcita = $_GET['idcita'];
        $sql = "pa_traerProcedimientosPaquetesxCita('" . $idcitapaquete . "','" . $idcita;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();

        $error = $objDatos->devuelveError();

        if ($error != "") {
            $my_array = array('error' => $error);
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $procedimiento = array(
                    'dsprocedimiento' => $row['DS_PROCEDIMIENTO']
                );

                $my_array[] = $procedimiento;
            }
        }

        echo json_encode($my_array);
    }

    function comprobarFactura() {
        $sql = "pa_comprobarFactura('" . $_GET['idcita'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        $respuesta;
        if ($error != "") {
            $my_array = array('error' => $error);
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $respuesta = $row['respuesta'];
            }
        }
        echo trim($respuesta);
    }

    function refrescarRecordatorios() {
        $sql = "pa_recordatorioCitas('" . $_GET['centro'] . "','" . $_SESSION['IdPersonaCons'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        $respuesta;
        if ($error != "") {
            $my_array = array('error' => $error);
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $cita = array(
                    'id' => $row['id'], 'paciente' => $row['paciente'], 'motivo' => $row['motivo']
                );

                $my_array[] = $cita;
            }
        }
        echo json_encode($my_array);
    }

    function cambiarEstadoCita() {
        $sql = "update cts_citas set OP_CITA = 2 WHERE ID_CITAS = " . $_GET['idCita'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        $resultados = array();
        $error = $objDatos->devuelveError();
        $respuesta;
        if ($error != "") {
            echo 'error' . $error;
        } else {
            echo _("exito");
        }
    }

}

?>
